package com.controladores.controlvehicular;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import java.net.Socket;
import java.util.ArrayList;

import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;

import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.controladores.controlvehicular.R;
import com.controladores.controlvehicular.basededatos.GestorBaseDatos;
//import com.controladores.controlvehicular.R.id;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class InicioSesion extends SherlockFragmentActivity {
	protected TextView fuenteIU;
	protected TextView fuenteIC;
	protected TextView fuenteSM;
	protected TextView fuenteER;
	private EditText contrasena, usuario;
	Socket sk;
	DataInputStream entrada;
	DataOutputStream salida;
	private String[] datosExtraidos;
	private boolean estadoConexion;
	private String informacion;
	private String nombreUsuarioServ;
	private String user,password;
	private String claveEncriptacion="SI@P/ml*vc#";

	 private ProgressDialog dialogCircle;
	/*
	 * private String nombreZona1; private String[] zona1; ;// comentar //
	 * private String[] tipoMultas; //comentar private String idSubcalle;
	 * private String callePrincipal1; private String calleSecundaria11; private
	 * String calleSecundaria21; private String idSubcalle2; // comentar private
	 * String callePrincipal2; // comentar private String calleSecundaria12; //
	 * comentar private String calleSecundaria22; // comentar private String
	 * idSubcalle3; // comentar private String callePrincipal3; // comentar
	 * private String calleSecundaria13; // comentar private String
	 * calleSecundaria23; // comentar private String informacion2_2;
	 */

	/*
	 * private String nombreZona2; private String[] zona_2; // comentar //
	 * private String[] tipoMultas; //comentar private String idSubcalle_2;
	 * private String callePrincipal2_1; private String calleSecundaria2_11;
	 * private String calleSecundaria2_21; private String idSubcalle2_2; //
	 * comentar private String callePrincipal2_2; // comentar private String
	 * calleSecundaria2_12; // comentar private String calleSecundaria2_22; //
	 * comentar private String idSubcalle2_3; // comentar private String
	 * callePrincipal2_3; // comentar private String calleSecundaria2_13; //
	 * comentar private String calleSecundaria2_23;
	 */

	private String[] zonas;

	private String nombreZona1;
	private String horaInicio1;
	private String horaFin1;
	
	private String idSubcalle11;
	private String orientacion11;
	private String callePrincipal11;
	private String calleSecundaria111;
	private String calleSecundaria211;
	
	private String idSubcalle21;
	private String orientacion21;
	private String callePrincipal21;
	private String calleSecundaria121;
	private String calleSecundaria221;
	
	private String idSubcalle31;
	private String orientacion31;
	private String callePrincipal31;
	private String calleSecundaria131;
	private String calleSecundaria231;
	
	private String idSubcalle41;
	private String orientacion41;
	private String callePrincipal41;
	private String calleSecundaria141;
	private String calleSecundaria241;
	
	private String idSubcalle51;
	private String orientacion51;
	private String callePrincipal51;
	private String calleSecundaria151;
	private String calleSecundaria251;

	private String nombreZona2;
	private String horaInicio2;
	private String horaFin2;
	private String idSubcalle12;
	private String orientacion12;
	private String callePrincipal12;
	private String calleSecundaria112;
	private String calleSecundaria212;
	
	private String idSubcalle22;
	private String orientacion22;
	private String callePrincipal22;
	private String calleSecundaria122;
	private String calleSecundaria222;
	
	private String idSubcalle32;
	private String orientacion32;
	private String callePrincipal32;
	private String calleSecundaria132;
	private String calleSecundaria232;
	
	private String idSubcalle42;
	private String orientacion42;
	private String callePrincipal42;
	private String calleSecundaria142;
	private String calleSecundaria242;
	
	private String idSubcalle52;
	private String orientacion52;
	private String callePrincipal52;
	private String calleSecundaria152;
	private String calleSecundaria252;

	private String nombreZona3;
	private String horaInicio3;
	private String horaFin3;
	private String idSubcalle13;
	private String orientacion13;
	private String callePrincipal13;
	private String calleSecundaria113;
	private String calleSecundaria213;
	
	private String idSubcalle23;
	private String orientacion23;
	private String callePrincipal23;
	private String calleSecundaria123;
	private String calleSecundaria223;
	
	private String idSubcalle33;
	private String orientacion33;
	private String callePrincipal33;
	private String calleSecundaria133;
	private String calleSecundaria233;
	
	private String idSubcalle43;
	private String orientacion43;
	private String callePrincipal43;
	private String calleSecundaria143;
	private String calleSecundaria243;
	
	private String idSubcalle53;
	private String orientacion53;
	private String callePrincipal53;
	private String calleSecundaria153;
	private String calleSecundaria253;

	private String nombreZona4;
	private String horaInicio4;
	private String horaFin4;
	private String idSubcalle14;
	private String orientacion14;
	private String callePrincipal14;
	private String calleSecundaria114;
	private String calleSecundaria214;
	
	private String idSubcalle24;
	private String orientacion24;
	private String callePrincipal24;
	private String calleSecundaria124;
	private String calleSecundaria224;
	
	private String idSubcalle34;
	private String orientacion34;
	private String callePrincipal34;
	private String calleSecundaria134;
	private String calleSecundaria234;
	
	private String idSubcalle44;
	private String orientacion44;
	private String callePrincipal44;
	private String calleSecundaria144;
	private String calleSecundaria244;
	
	private String idSubcalle54;
	private String orientacion54;
	private String callePrincipal54;
	private String calleSecundaria154;
	private String calleSecundaria254;

	private String idTipoMultaServidor;
	private String razonMulta;
	private String desdeTiempoMulta;
	private String hastaTiempoMulta;
	private String montoMulta;
	private int tiempo;
	private int puerto = 0;
	private String ip = "";
	public static Activity ma;
	private Button botonIL;
	//private ArrayList<String> puntosZona=new ArrayList<String>();

	public DataInputStream getEntrada() {
		return entrada;
	}

	public void setEntrada(DataInputStream entrada) {
		this.entrada = entrada;
	}

	public DataOutputStream getSalida() {
		return salida;
	}

	public void setSalida(DataOutputStream salida) {
		this.salida = salida;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	String msg = null;
	ProgressDialog progressDoalog;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_inicio_sesion);

		usuario = (EditText) findViewById(R.id.etUsuario);
		contrasena = (EditText) findViewById(R.id.etContasena);
		// salidaTxt = (TextView) findViewById(R.id.edNomUsuarioH);
		// contador = (TextView) findViewById(R.id.textView2);
		// cajaIP y cajaPUERTO variables temporales
		//cajaIP = (EditText) findViewById(R.id.etIp);
		//cajaPUERTO = (EditText) findViewById(R.id.etPuerto);
		estadoConexion = false;
		// informacionRecibida="";
		// datosExtraidos=new String[7];
		// ma = this;
		//abrirComunicacion();
		/*GestorBaseDatos crear = new GestorBaseDatos(InicioSesion.this);

		try {
			crear.crearDataBase();
			//crear.abrirBaseDatos();
			//crear.eliminarIp();
			//crear.eliminarPuerto();
			crear.close();
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}*/

		// Creamos la Base de datos
		// crearBBDD();
		// GestorBaseDatos miGestor = new GestorBaseDatos(InicioSesion.this);
		// try {
		// miGestor.crearDataBase();
		// } catch (IOException e1) {
		// TODO Auto-generated catch block
		// e1.printStackTrace();
		// }
		// miGestor.abrirBaseDatos();
		// miGestor.close();
		botonIL = (Button) findViewById(R.id.btnLogin);
		botonIL.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				
				String estado=" ";
					GestorBaseDatos sesion = new GestorBaseDatos(
							InicioSesion.this);
					try {
						sesion.crearDataBase();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					sesion.abrirBaseDatos();
					 estado= sesion.consultarEstadoSesion();
					sesion.close();	
				if (estado.compareTo("1") == 0) {
					user=usuario.getText().toString().trim();
					password=contrasena.getText().toString(); 
					GestorBaseDatos sesion2 = new GestorBaseDatos(
							InicioSesion.this);
					sesion2.abrirBaseDatos();
					String datoUsuario = sesion2.consultarUsuarioSesion();
					String datoContrasena = sesion2.consultarContrasena();
					sesion2.close();
					if (user.compareTo(datoUsuario)==0 && password.compareTo(datoContrasena)==0) {
						//GestorBaseDatos manejador = new GestorBaseDatos(
						//		InicioSesion.this);
						//boolean bienHecho2 = false;
						//manejador.abrirBaseDatos();
						//bienHecho2 = manejador.insertarIPPUERTO(ip, puerto);
						//manejador.close();
						Intent aZonaC = new Intent(InicioSesion.this,ZonasControl.class);
						startActivity(aZonaC);
					}
					if (estado.compareTo("null") == 0) {
						guardarIpPuerto();
						inicializacion();
						//dilogUsuarioContrase??aIncorecta(); 
					}
				}else {
					guardarIpPuerto();
					inicializacion();
				} 
			}
		/*	Handler handle = new Handler() {
				@Override
				public void handleMessage(Message msg) {
					super.handleMessage(msg);
					progressDoalog.incrementProgressBy(1);
				}
			};*/

		});
		fuenteIU = (TextView) findViewById(R.id.tvNomPrograma);
		Typeface tipofuente = Typeface.createFromAsset(getAssets(),
				"gloriahallelujah.ttf");
		fuenteIU.setTypeface(tipofuente);

		// fuenteIC = (TextView) findViewById(R.id.etIC);
		// fuenteIC.setTypeface(tipofuente);

		// fuenteSM = (TextView) findViewById(R.id.etSMfuente);
		// Typeface tipofuenteT = Typeface.createFromAsset(getAssets(),
		// "AdventPsychosis.ttf");
		// fuenteSM.setTypeface(tipofuenteT);

		// fuenteER = (TextView) findViewById(R.id.etER);
		// fuenteER.setTypeface(tipofuenteT);

		/*
		 * String ip = "192.168.0.106"; int puerto = 3032;
		 * Log.v(this.getClass().getClass().getCanonicalName(), "Socket " + ip +
		 * " " + puerto); try { sk = new Socket(ip, puerto);
		 * Log.v(getClass().getCanonicalName(), "Se ha iniciado conexion...");
		 * Log("Conexion con servidor: " + ip + " Puerto: " + puerto); entrada =
		 * new DataInputStream(new BufferedInputStream( sk.getInputStream()));
		 * salida = new DataOutputStream(new BufferedOutputStream(
		 * sk.getOutputStream()));
		 * 
		 * } catch (UnknownHostException e) { e.printStackTrace();
		 * salidaTxt.append(e.getMessage()); } catch (IOException e) {
		 * e.printStackTrace(); salidaTxt.append(e.getMessage()); }
		 * 
		 * // ---------------------------------------------------------------
		 * final Handler myHandler = new Handler();
		 * 
		 * (new Thread(new Runnable() {
		 * 
		 * public void run() { while (true) {
		 * 
		 * String recibe; try { recibe = getEntrada().readUTF(); if (recibe !=
		 * null) { InicioSesion.this.setMsg(recibe);
		 * Log.v(getClass().getCanonicalName(), "Recibiendo datos.." + recibe);
		 * }
		 * 
		 * } catch (IOException e) { // TODO Auto-generated catch block
		 * e.printStackTrace(); }
		 * 
		 * myHandler.post(new Runnable() { public void run() {
		 * actualizarMensajes(); } }); } } })).start();
		 * 
		 * // ---------------------------------------------------------------
		 * Log.v(getClass().getCanonicalName(),
		 * "Terminando de iniciar componentes");
		 * 
		 */
		
	}

	// crear la base de datos en basedatos helper
	GestorBaseDatos miBBDDHelper;

	
	public void inicializacion(){
		GestorBaseDatos manejador = new GestorBaseDatos(
				InicioSesion.this);
		
		// TODO Auto-generated method stub
		// comprobarCamposInformacionVehiculo();

		user=usuario.getText().toString().trim();
		password=contrasena.getText().toString().trim(); 
		String informacionRegistro = "##;" + "001;" + user
				+ ";" +password + ";**";
		// informacion = "##;" + "001;" + usuario.getText().toString()
		// + ";" + contrasena.getText().toString() + ";**"+"\n";
		informacion=encrypt(informacionRegistro, claveEncriptacion);
		dialogEspera();
			estadoConexion = connect();
		

		if (estadoConexion == true) {

			Toast.makeText(getBaseContext(), "Conexión establecida",
					Toast.LENGTH_LONG).show();
			
	
			sendMensaje(informacion);
			String informacionRecibida=decrypt(receiveMensaje(), claveEncriptacion);
			String datosRecibidos = quitarEspaciosTrama(informacionRecibida);
			// dialogCircle.cancel();
			System.out.println(datosRecibidos);
			datosExtraidos = descomposeTrama(datosRecibidos, ";");
			// datosExtraidos = descomposeTrama(receiveMensaje(), ";");

			// Toast.makeText(getBaseContext(), informacionRecibida,
			// Toast.LENGTH_LONG).show();
			if (datosExtraidos[0].compareTo("##") == 0
					&& datosExtraidos[1].compareTo("002") == 0) {
				if (datosExtraidos[2].compareTo("1") == 0) {
					Toast.makeText(getBaseContext(), "si entra al 1",
							Toast.LENGTH_LONG).show();
					nombreUsuarioServ = datosExtraidos[3];
					boolean bienHecho = false;
					GestorBaseDatos sesion = new GestorBaseDatos(
							InicioSesion.this);
					sesion.abrirBaseDatos();
					String estadoSesion ="1";
					System.out.println("usuario"+user+"Contraseña"+password);
					System.out.println("nombre usuario servidor"+nombreUsuarioServ);
					bienHecho=sesion.guardarDatosUsuario(user,password,estadoSesion);
					sesion.close();
					
					try {
						
						// Coordenadas guardar
						
						String zonasS = datosExtraidos[4];
						String zonasSP = zonasS.substring(0,
								zonasS.length() - 1);
						// System.out.println(zonasSP);
						String zonasAuxiliar[] = descomposeT(zonasSP,
								"'");
						zonas = ordenarZonas(zonasAuxiliar);

						//String zonasT;
						String[] elementosCalles;
						String idSubcalleCoordenadas;
						String punto1;
						String punto2;
						String punto3;
						String punto4;
						for (int i = 0; i < zonas.length; i++) {
							String zonaQuitarCaracter = zonas[i]
									.substring(1);
							String elementoZona[] = zonaQuitarCaracter
									.split("_,");
							String nombreZona = elementoZona[0];
							String horaInicio = elementoZona[1];
							String horaFin = elementoZona[2];
							for (int j = 5; j < elementoZona.length; j++) {
								String callePosicion = elementoZona[j];
								elementosCalles = callePosicion
										.split("/");
								idSubcalleCoordenadas = elementosCalles[0];
								punto1 = elementosCalles[5];
								punto2 = elementosCalles[6];
								punto3 = elementosCalles[7];
								punto4 = elementosCalles[8];
								System.out.println("puntos si se estan extrayendo: "+punto1 +" "+punto2+" "+punto3+" "+punto4 );
								//if(i==0){
								//	puntosZona.add(punto1);
								//	puntosZona.add(punto2);
								//	puntosZona.add(punto3);
								//	puntosZona.add(punto4);
								//}
								// Aqui persistencia en tabla nueva de
								// puntos
								manejador.abrirBaseDatos();
								bienHecho = manejador
										.insertCoordenadasSubCalle(
												nombreZona,
												idSubcalleCoordenadas,
												horaInicio, horaFin,
												punto1, punto2, punto3,
												punto4);
								manejador.close();
							}
						}

						// zonas=descomposeT(zonasSP, "'");
						// System.out.println("tamanozonasordenadas"+zonas.length);
						// System.out.println(zonas[0]);
						// System.out.println(zonas[1]);
						// System.out.println(zonas[2]);
						String zona1S = zonas[0];
						String zona1SP = zona1S.substring(1,
								zona1S.length() - 1);
						String aZona1[] = descomposeT(zona1SP, "_,");
						nombreZona1 = aZona1[0];
						horaInicio1 = aZona1[1];
						horaFin1 = aZona1[2];
						String horaInicioReceso=aZona1[3];
						String horaFinReceso=aZona1[4];
						System.out.println(nombreZona1 + " "
								+ horaInicio1 + " " + horaFin1);
						System.out.println("inicio receso  "+horaInicioReceso);
						System.out.println("fin receso  "+horaFinReceso);
						String subcalles11S = aZona1[5];
						String aSubcalles11[] = descomposeT(
								subcalles11S, "/");
						idSubcalle11 = aSubcalles11[0];
						orientacion11 = aSubcalles11[1];
						callePrincipal11 = aSubcalles11[2];
						calleSecundaria111 = aSubcalles11[3];
						calleSecundaria211 = aSubcalles11[4];
						manejador.abrirBaseDatos();
						int num = aZona1.length - 5;
						bienHecho = manejador.insertAsignacionZona(
								nombreUsuarioServ, nombreZona1,
								idSubcalle11, callePrincipal11,
								calleSecundaria111, calleSecundaria211,
								num, horaInicio1, horaFin1,
								orientacion11,horaInicioReceso,horaFinReceso);
						manejador.close();
						long id = 1;
						if (aZona1.length >=7) {
							String subcalles21S = aZona1[6];
							String aSubcalles21[] = descomposeT(
									subcalles21S, "/");
							idSubcalle21 = aSubcalles21[0];
							orientacion21 = aSubcalles21[1];
							callePrincipal21 = aSubcalles21[2];
							calleSecundaria121 = aSubcalles21[3];
							calleSecundaria221 = aSubcalles21[4];
							System.out.println(idSubcalle21
									+ callePrincipal21
									+ calleSecundaria121
									+ calleSecundaria221);
							manejador.abrirBaseDatos();
							bienHecho = manejador
									.insertAsignacionZonaSubcalle2(id,
											idSubcalle21,
											callePrincipal21,
											calleSecundaria121,
											calleSecundaria221,
											orientacion21);
							manejador.close();
							if (aZona1.length >=8) {
								String subcalles31S = aZona1[7];
								String aSubcalles31[] = descomposeT(
										subcalles31S, "/");
								idSubcalle31 = aSubcalles31[0];
								orientacion31 = aSubcalles31[1];
								callePrincipal31 = aSubcalles31[2];
								calleSecundaria131 = aSubcalles31[3];
								calleSecundaria231 = aSubcalles31[4];
								manejador.abrirBaseDatos();
								bienHecho = manejador
										.insertAsignacionZonaSubcalle3(
												id, idSubcalle31,
												callePrincipal31,
												calleSecundaria131,
												calleSecundaria231,
												orientacion31);
								manejador.close();
								if(aZona1.length>=9){
									String subcalles41S = aZona1[8];
									String aSubcalles41[] = descomposeT(
											subcalles41S, "/");
									idSubcalle41 = aSubcalles41[0];
									orientacion41 = aSubcalles41[1];
									callePrincipal41 = aSubcalles41[2];
									calleSecundaria141 = aSubcalles41[3];
									calleSecundaria241 = aSubcalles41[4];
									manejador.abrirBaseDatos();
									bienHecho = manejador
											.insertAsignacionZonaSubcalle4(
													id, idSubcalle41,
													callePrincipal41,
													calleSecundaria141,
													calleSecundaria241,
													orientacion41);
									manejador.close();
									//subcalle 4 de la Zona 1 persistir desde aqui..
									
									if(aZona1.length>9){
										String subcalles51S = aZona1[9];
										String aSubcalles51[] = descomposeT(
												subcalles51S, "/");
										idSubcalle51 = aSubcalles51[0];
										orientacion51 = aSubcalles51[1];
										callePrincipal51 = aSubcalles51[2];
										calleSecundaria151 = aSubcalles51[3];
										calleSecundaria251 = aSubcalles51[4];
										manejador.abrirBaseDatos();
										bienHecho = manejador
												.insertAsignacionZonaSubcalle5(
														id, idSubcalle51,
														callePrincipal51,
														calleSecundaria151,
														calleSecundaria251,
														orientacion51);
										manejador.close();
										//subcalle 5 de la Zona 1 persistir 
									}
									
								}
							}
						}
						// System.out.println("tamanozonasordenadas"+zonas.length);
						if (zonas.length >= 2) {
							String zona2S = zonas[1];
							String zona2SP = zona2S.substring(1,
									zona2S.length() - 1);
							String aZona2[] = descomposeT(zona2SP, "_,");
							nombreZona2 = aZona2[0];
							horaInicio2 = aZona2[1];
							horaFin2 = aZona2[2];
							String horaInicioReceso2=aZona2[3];
							String horaFinReceso2=aZona2[4];
							System.out.println(nombreZona2 + " "
									+ horaInicio2 + " " + horaFin2);
							// Comparar hora inicio y fin de las dos
							// subzonas

							String subcalles12S = aZona2[5];
							String aSubcalles12[] = descomposeT(
									subcalles12S, "/");
							idSubcalle12 = aSubcalles12[0];
							orientacion12 = aSubcalles12[1];
							callePrincipal12 = aSubcalles12[2];
							calleSecundaria112 = aSubcalles12[3];
							calleSecundaria212 = aSubcalles12[4];
							manejador.abrirBaseDatos();
							int num2 = aZona2.length - 5;
							bienHecho = manejador
									.insertAsignacionZona2(
											// /ver otra zona
											nombreUsuarioServ,
											nombreZona2, idSubcalle12,
											callePrincipal12,
											calleSecundaria112,
											calleSecundaria212, num2,
											horaInicio2, horaFin2,
											orientacion12,horaInicioReceso2,horaFinReceso2);
							manejador.close();

							if (aZona2.length >= 7) {
								String subcalles22S = aZona2[6];
								String aSubcalles22[] = descomposeT(
										subcalles22S, "/");
								idSubcalle22 = aSubcalles22[0];
								orientacion22 = aSubcalles22[1];
								callePrincipal22 = aSubcalles22[2];
								calleSecundaria122 = aSubcalles22[3];
								calleSecundaria222 = aSubcalles22[4];
								manejador.abrirBaseDatos();

								bienHecho = manejador
										.insertAsignacionZonaSubcalle2_2(
												id, idSubcalle22,
												callePrincipal22,
												calleSecundaria122,
												calleSecundaria222,orientacion22);
								manejador.close();
								if (aZona2.length >=8) {
									String subcalles32S = aZona2[7];
									String aSubcalles32[] = descomposeT(
											subcalles32S, "/");
									idSubcalle32 = aSubcalles32[0];
									orientacion32 = aSubcalles32[1];
									callePrincipal32 = aSubcalles32[2];
									calleSecundaria132 = aSubcalles32[3];
									calleSecundaria232 = aSubcalles32[4];
									manejador.abrirBaseDatos();

									bienHecho = manejador
											.insertAsignacionZonaSubcalle2_3(
													id, idSubcalle32,
													callePrincipal32,
													calleSecundaria132,
													calleSecundaria232,orientacion32 );
									manejador.close();
									if(aZona2.length>=9){
										String subcalles42S = aZona2[8];
										String aSubcalles42[] = descomposeT(
												subcalles42S, "/");
										idSubcalle42 = aSubcalles42[0];
										orientacion42 = aSubcalles42[1];
										callePrincipal42 = aSubcalles42[2];
										calleSecundaria142 = aSubcalles42[3];
										calleSecundaria242 = aSubcalles42[4];
										//subcalle 4 de la Zona 2 persistir
										manejador.abrirBaseDatos();
										bienHecho = manejador
												.insertAsignacionZonaSubcalle2_4(
														id, idSubcalle42,
														callePrincipal42,
														calleSecundaria142,
														calleSecundaria242,
														orientacion42);
										manejador.close();
										
										if(aZona2.length>9){
											String subcalles52S = aZona2[9];
											String aSubcalles52[] = descomposeT(
													subcalles52S, "/");
											idSubcalle52 = aSubcalles52[0];
											orientacion52 = aSubcalles52[1];
											callePrincipal52 = aSubcalles52[2];
											calleSecundaria152 = aSubcalles52[3];
											calleSecundaria252 = aSubcalles52[4];
											//subcalle 5 de la Zona 2 persistir
											manejador.abrirBaseDatos();
											bienHecho = manejador
													.insertAsignacionZonaSubcalle2_5(
															id, idSubcalle52,
															callePrincipal52,
															calleSecundaria152,
															calleSecundaria252,
															orientacion52);
											manejador.close();
										}
										
									}
								}
							}
							if (zonas.length >= 3) {
								String zona3S = zonas[2];
								String zona3SP = zona3S.substring(1,
										zona3S.length() - 1);
								String aZona3[] = descomposeT(zona3SP,
										"_,");
								nombreZona3 = aZona3[0];
								horaInicio3 = aZona3[1];
								horaFin3 = aZona3[2];
								String horaInicioReceso3=aZona3[3];
								String horaFinReceso3=aZona3[4];
								String subcalles13S = aZona3[5];
								String aSubcalles13[] = descomposeT(
										subcalles13S, "/");
								idSubcalle13 = aSubcalles13[0];
								orientacion13 = aSubcalles13[1];
								callePrincipal13 = aSubcalles13[2];
								calleSecundaria113 = aSubcalles13[3];
								calleSecundaria213 = aSubcalles13[4];
								manejador.abrirBaseDatos();
								int num3 = aZona3.length - 5;
								bienHecho = manejador
										.insertAsignacionZona3(
												//ver otra zona 3
												nombreUsuarioServ,
												nombreZona3,
												idSubcalle13,
												callePrincipal13,
												calleSecundaria113,
												calleSecundaria213,
												num3, horaInicio3,
												horaFin3,orientacion13,horaInicioReceso3,horaFinReceso3);
								manejador.close();
								if (aZona3.length >= 7) {
									String subcalles23S = aZona3[6];
									String aSubcalles23[] = descomposeT(
											subcalles23S, "/");
									idSubcalle23 = aSubcalles23[0];
									orientacion23 = aSubcalles23[1];
									callePrincipal23 = aSubcalles23[2];
									calleSecundaria123 = aSubcalles23[3];
									calleSecundaria223 = aSubcalles23[4];
									manejador.abrirBaseDatos();
									bienHecho = manejador
											.insertAsignacionZonaSubcalle3_2(
													id, idSubcalle23,
													callePrincipal23,
													calleSecundaria123,
													calleSecundaria223,orientacion23);
									manejador.close();
									if (aZona3.length >=8) {
										String subcalles33S = aZona3[7];
										String aSubcalles33[] = descomposeT(
												subcalles33S, "/");
										idSubcalle33 = aSubcalles33[0];
										orientacion33 = aSubcalles33[1];
										callePrincipal33 = aSubcalles33[2];
										calleSecundaria133 = aSubcalles33[3];
										calleSecundaria233 = aSubcalles33[4];
										manejador.abrirBaseDatos();
										bienHecho = manejador
												.insertAsignacionZonaSubcalle3_3(
														id,
														idSubcalle33,
														callePrincipal33,
														calleSecundaria133,
														calleSecundaria233,orientacion33);
										System.out
												.println("id dubcallle33"
														+ idSubcalle33
														+ "calle principal "
														+ callePrincipal33
														+ "calle secundaria 1"
														+ calleSecundaria133
														+ "calle secundaria 2 "
														+ calleSecundaria233);
										manejador.close();
										if(aZona3.length>=9){
											String subcalles43S = aZona3[8];
											String aSubcalles43[] = descomposeT(
													subcalles43S, "/");
											idSubcalle43 = aSubcalles43[0];
											orientacion43 = aSubcalles43[1];
											callePrincipal43 = aSubcalles43[2];
											calleSecundaria143 = aSubcalles43[3];
											calleSecundaria243 = aSubcalles43[4];
											//subcalle 4 de la Zona 3 persistir
											manejador.abrirBaseDatos();
											bienHecho = manejador
													.insertAsignacionZonaSubcalle3_4(
															id, idSubcalle43,
															callePrincipal43,
															calleSecundaria143,
															calleSecundaria243,
															orientacion43);
											manejador.close();	
											if(aZona3.length>9){
												String subcalles53S = aZona3[9];
												String aSubcalles53[] = descomposeT(
														subcalles53S, "/");
												idSubcalle53 = aSubcalles53[0];
												orientacion53 = aSubcalles53[1];
												callePrincipal53 = aSubcalles53[2];
												calleSecundaria153 = aSubcalles53[3];
												calleSecundaria253 = aSubcalles53[4];
												//subcalle 5 de la Zona 3 persistir
												manejador.abrirBaseDatos();
												bienHecho = manejador
														.insertAsignacionZonaSubcalle3_5(
																id, idSubcalle53,
																callePrincipal53,
																calleSecundaria153,
																calleSecundaria253,
																orientacion53);
												manejador.close();
											}
										}
									}
								}
								if (zonas.length > 3) {
									String zona4S = zonas[3];
									String zona4SP = zona4S.substring(
											1, zona4S.length() - 1);
									String aZona4[] = descomposeT(
											zona4SP, "_,");
									nombreZona4 = aZona4[0];
									horaInicio4 = aZona4[1];
									horaFin4 = aZona4[2];
									String horaInicioReceso4=aZona4[3];
									String horaFinReceso4=aZona4[4];
									String subcalles14S = aZona4[5];
									String aSubcalles14[] = descomposeT(
											subcalles14S, "/");
									idSubcalle14 = aSubcalles14[0];
									orientacion14 = aSubcalles14[1];
									callePrincipal14 = aSubcalles14[2];
									calleSecundaria114 = aSubcalles14[3];
									calleSecundaria214 = aSubcalles14[4];
									manejador.abrirBaseDatos();
									int num4 = aZona4.length - 5;
									bienHecho = manejador
											.insertAsignacionZona4(
													// /ver otra zona 4
													nombreUsuarioServ,
													nombreZona4,
													idSubcalle14,
													callePrincipal14,
													calleSecundaria114,
													calleSecundaria214,
													num4, horaInicio4,
													horaFin4,orientacion14,horaInicioReceso4,horaFinReceso4);
									manejador.close();
									if (aZona4.length >= 7) {
										String subcalles24S = aZona4[6];
										String aSubcalles24[] = descomposeT(
												subcalles24S, "/");
										idSubcalle24 = aSubcalles24[0];
										orientacion24 = aSubcalles24[1];
										callePrincipal24 = aSubcalles24[2];
										calleSecundaria124 = aSubcalles24[3];
										calleSecundaria224 = aSubcalles24[4];
										manejador.abrirBaseDatos();
										bienHecho = manejador
												.insertAsignacionZonaSubcalle4_2(
														id,
														idSubcalle24,
														callePrincipal24,
														calleSecundaria124,
														calleSecundaria224,orientacion24);
										manejador.close();
										if (aZona4.length >= 8) {
											String subcalles34S = aZona4[7];
											String aSubcalles34[] = descomposeT(
													subcalles34S, "/");
											idSubcalle34 = aSubcalles34[0];
											orientacion34 = aSubcalles34[1];
											callePrincipal34 = aSubcalles34[2];
											calleSecundaria134 = aSubcalles34[3];
											calleSecundaria234 = aSubcalles34[4];
											manejador.abrirBaseDatos();
											bienHecho = manejador
													.insertAsignacionZonaSubcalle4_3(
															id,
															idSubcalle34,

															callePrincipal34,
															calleSecundaria134,
															calleSecundaria234,orientacion34);
											manejador.close();
											System.out
													.println("id dubcallle34"
															+ idSubcalle34
															+ "calle principal "
															+ callePrincipal34
															+ "calle secundaria 1"
															+ calleSecundaria134
															+ "calle secundaria 2 "
															+ calleSecundaria234);
											if(aZona4.length>=9){
												String subcalles44S = aZona4[8];
												String aSubcalles44[] = descomposeT(
														subcalles44S, "/");
												idSubcalle44 = aSubcalles44[0];
												orientacion44 = aSubcalles44[1];
												callePrincipal44 = aSubcalles44[2];
												calleSecundaria144 = aSubcalles44[3];
												calleSecundaria244 = aSubcalles44[4];
												//subcalle 4 de la Zona 4 persistir
												manejador.abrirBaseDatos();
												bienHecho = manejador
														.insertAsignacionZonaSubcalle4_4(
																id, idSubcalle44,
																callePrincipal44,
																calleSecundaria144,
																calleSecundaria244,
																orientacion44);
												manejador.close();
												if(aZona4.length>9){
													String subcalles54S = aZona4[9];
													String aSubcalles54[] = descomposeT(
															subcalles54S, "/");
													idSubcalle54 = aSubcalles54[0];
													orientacion54 = aSubcalles54[1];
													callePrincipal54 = aSubcalles54[2];
													calleSecundaria154 = aSubcalles54[3];
													calleSecundaria254 = aSubcalles54[4];
													//subcalle 5 de la Zona 4 persistir
													manejador.abrirBaseDatos();
													bienHecho = manejador
															.insertAsignacionZonaSubcalle4_5(
																	id, idSubcalle54,
																	callePrincipal54,
																	calleSecundaria154,
																	calleSecundaria254,
																	orientacion54);
													manejador.close();
												}
											}
										}
									}
								}
							}
						}
						String multas = datosExtraidos[5];
						String multasS = multas.substring(1,
								multas.length() - 1);

						String vectorMultas[] = descomposeT(multasS,
								",");
						ArrayList<String> multasLista = new ArrayList<String>();
						for (int i = 0; i < vectorMultas.length; i++) {
							multasLista.add(vectorMultas[i]);
						}
						ArrayList<String> multasOrde = new ArrayList<String>();
						multasOrde
								.addAll(ordenarMultasPorTiempo(multasLista));
						manejador.abrirBaseDatos();
						for (int c = 0; c < multasOrde.size(); c++) {
							String multaP = multasOrde.get(c);
							String multaPosicion[] = descomposeT(
									multaP, "-");
							idTipoMultaServidor = multaPosicion[0];
							razonMulta = multaPosicion[1];
							montoMulta = multaPosicion[2];
							desdeTiempoMulta = multaPosicion[3];
							int desdeTiempo = Integer
									.parseInt(desdeTiempoMulta);
							hastaTiempoMulta = multaPosicion[4];
							int hastaTiempo = Integer
									.parseInt(hastaTiempoMulta);
							tiempo = (hastaTiempo - desdeTiempo) + 1;
							/*
							 * System.out.println(idTipoMultaServidor +
							 * "-" + razonMulta + "-" + desdeTiempoMulta
							 * + "-" + hastaTiempoMulta + "-" + tiempo +
							 * "-" + montoMulta);
							 */
							bienHecho = manejador.insertMultas(
									idTipoMultaServidor, razonMulta,
									montoMulta, desdeTiempoMulta,
									hastaTiempoMulta, tiempo);

						}

						manejador.close();

					} catch (Exception e) {
						// TODO Auto-generated catch block
						bienHecho = false;
						e.printStackTrace();
					}
					if (!bienHecho) {
						Toast.makeText(getBaseContext(),
								"La Datos no fueron Cargados",
								Toast.LENGTH_LONG).show();
					}
					//Localizacion loc = new Localizacion();
					//loc.recibirPuntosGeocerca(puntosZona);
					//System.out.println("punto1"+puntosZona.get(0));
					//try {
					//	ControlHora c= new ControlHora();
					//	c.ejecutarHora();	
					//} catch (Exception e) {
						// TODO: handle exception
					//}
					
					Intent aLocalizacion = new Intent(
							InicioSesion.this, Localizacion.class);
					String irAZona = "Ir a zona";
					aLocalizacion.putExtra("IrZona", irAZona);
					startActivity(aLocalizacion);

					//Intent aZonaC = new Intent(InicioSesion.this,
					//ZonasControl.class);
					//startActivity(aZonaC);
					// overridePendingTransition(R.anim.wave_scale,
					// R.anim.escalar);

				} else {
					if (datosExtraidos[2].compareTo("2") == 0) {
						Toast.makeText(getBaseContext(),
								"No tiene zonas de trabajo asignadas",
								Toast.LENGTH_LONG).show();
						dilogZonasNoAsignadas();
					} else {
						if (datosExtraidos[2].compareTo("3") == 0) {
							dilogSesionIniciada();
							
						}else {
							dilogUsuarioContrasenaIncorecta();	
						}	
					}
				}
			}

		} else {

			dilogErrorAlEntrar();

		}
		//try {
		//	manejador.abrirBaseDatos();
		//	bienHecho2 = manejador.insertarIPPUERTO(ip, puerto);
		//	manejador.close();
		//} catch (Exception e) {
			// TODO: handle exception

		//}
		//if (!bienHecho2) {
		//	Toast.makeText(getBaseContext(),
		//			"La Datos no fueron Cargados de IP y PUERTO",
		//			Toast.LENGTH_LONG).show();
		//}
	}
	/*public void abrirComunicacion() {
		try {
			GestorBaseDatos crear = new GestorBaseDatos(null);
			crear.abrirBaseDatos();
			ip = crear.obtenerIp();
			String x = "";
			x = crear.obtenerpuerto();
			puerto = Integer.parseInt(x);
			crear.close();
		} catch (Exception e) {
			// TODO: handle exception
		}
		
	}*/
	public boolean connect() {

		//ip = cajaIP.getText().toString().trim();

		//puerto = Integer.parseInt(cajaPUERTO.getText().toString().trim());
		try {
			GestorBaseDatos crear = new GestorBaseDatos(null);
			crear.abrirBaseDatos();
			ip = crear.obtenerIp();
			String x = "";
			x = crear.obtenerpuerto();
			puerto = Integer.parseInt(x);
			crear.close();
		} catch (Exception e) {
			// TODO: handle exception
			
		}
		
		
		try {
			sk = new Socket(ip, puerto);
			if (sk.isConnected() == true) {
				return true;
			} else {
				return false;
			}
		} catch (Exception e) {
			e.printStackTrace();

			return false;
		}

	}

	public void sendMensaje(String mensaje) {
		try {
			salida = new DataOutputStream(new BufferedOutputStream(
					sk.getOutputStream()));
			salida.writeUTF(mensaje);
			salida.flush();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public String receiveMensaje() {
		String mensajeRecibido = "";
		try {
			entrada = new DataInputStream(new BufferedInputStream(
					sk.getInputStream()));
			mensajeRecibido = getEntrada().readUTF();
			// mensajeRecibido = getEntrada().readLine();
			//Toast.makeText(getBaseContext(), mensajeRecibido, Toast.LENGTH_LONG)
			//		.show();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return mensajeRecibido;
	}

	private String quitarEspaciosTrama(String tramaCadena) {
		String tramaSinEspacios = "";
		for (int i = 0; i < tramaCadena.length(); i++) {
			char c = tramaCadena.charAt(i);
			tramaSinEspacios = tramaSinEspacios + String.valueOf(c);
			if (c == ' ') {
				char c1 = tramaCadena.charAt(i - 1);
				if (c1 == ',') {
					tramaSinEspacios = tramaSinEspacios.substring(0,
							tramaSinEspacios.length() - 1);
				}
			}
		}
		return tramaSinEspacios;
	}

	private String[] ordenarZonas(String zonasDeControl[]) {
		String zonasOrdenadas[] = new String[zonasDeControl.length];
		int horarios[] = new int[zonasDeControl.length];
		String horaZona = "";
		String zonaPosicionS = "";
		String zonaPosicionSS = "";
		String zonaPosicion[];
		if (zonasDeControl.length == 1) {
			zonasOrdenadas = zonasDeControl;
		} else {
			for (int i = 0; i < zonasDeControl.length; i++) {
				// System.out.println("empieza" + i);
				zonaPosicionS = zonasDeControl[i];
				zonaPosicionSS = zonaPosicionS.substring(1);
				zonaPosicion = descomposeTrama(zonaPosicionSS, ",");
				// System.out.println("posicion"+i+zonaPosicion[0]);
				int horaI = Integer.parseInt(zonaPosicion[1].substring(0, 2));
				// int horaF=Integer.parseInt(zonaPosicion[2].substring(0,2));
				System.out.println(horaI + "descomposicionHoraInicio");
				// int numeroHoras=horaF-horaI;
				// horaZona=String.valueOf(numeroHoras).concat(String.valueOf(i));
				horaZona = String.valueOf(horaI).concat(String.valueOf(i));
				horarios[i] = Integer.parseInt(horaZona);
				// System.out.println(horarios[i]);
			}

			int h, j, menor, pos, tmp;
			for (h = 0; h < horarios.length - 1; h++) {
				menor = horarios[h];
				pos = h;
				for (j = h + 1; j < horarios.length; j++) {
					if (horarios[j] < menor) {
						menor = horarios[j];
						pos = j;
					}
				}
				if (pos != h) {
					tmp = horarios[h];
					horarios[h] = horarios[pos];
					horarios[pos] = tmp;
				}
			}
			// System.out.println(horarios[0]);
			// System.out.println(horarios[1]);
			// System.out.println(horarios[2]);
			// for(int k=horarios.length-1;k>=0;k--){
			for (int k = 0; k < horarios.length; k++) {
				String horarioC = String.valueOf(horarios[k]);
				// System.out.println(horarioC);
				String descomposicion = horarioC
						.substring(horarioC.length() - 1);
				// System.out.println(descomposicion);
				int posicion = Integer.parseInt(descomposicion);
				// System.out.println(posicion);
				// System.out.println(zonasDeControl[posicion]);
				// zonasOrdenadas[horarios.length-1-k]=zonasDeControl[posicion];
				zonasOrdenadas[k] = zonasDeControl[posicion];
			}
		}

		return zonasOrdenadas;
	}

	private ArrayList<String> ordenarMultasPorTiempo(ArrayList<String> multas) {
		ArrayList<String> multasOrdenadas = new ArrayList<String>();
		ArrayList<Integer> tiempoDesdeMultas = new ArrayList<Integer>();
		// String tiempoDesde = "";
		String multasString = "";
		String multasPosicion[];
		ArrayList<String> multasNoDesde = new ArrayList<String>();
		if (multas.size() == 1) {
			multasOrdenadas.addAll(multas);
		} else {
			for (int i = 0; i < multas.size(); i++) {
				// System.out.println("empieza" + i);
				multasString = multas.get(i);
				multasPosicion = descomposeTrama(multasString, "-");
				// System.out.println("posicion"+i+zonaPosicion[0]);
				int tiempoDesde = Integer.parseInt(multasPosicion[3]);
				// int horaF=Integer.parseInt(zonaPosicion[2].substring(0,2));
				// System.out.println(tiempoDesde + "Desde multas");
				if (tiempoDesde != 0) {
					tiempoDesdeMultas.add(tiempoDesde);
				} else {
					// System.out.println("Hay cero");
					multasNoDesde.add(multasString);
				}
				// int numeroHoras=horaF-horaI;
				// horaZona=String.valueOf(numeroHoras).concat(String.valueOf(i));

				// System.out.println(horarios[i]);
			}
			int tiempoDesdeMulta[] = new int[tiempoDesdeMultas.size()];
			for (int j = 0; j < tiempoDesdeMultas.size(); j++) {
				tiempoDesdeMulta[j] = tiempoDesdeMultas.get(j);
			}

			int h, j, menor, pos, tmp;
			for (h = 0; h < tiempoDesdeMulta.length - 1; h++) {
				menor = tiempoDesdeMulta[h];
				pos = h;
				for (j = h + 1; j < tiempoDesdeMulta.length; j++) {
					if (tiempoDesdeMulta[j] < menor) {
						menor = tiempoDesdeMulta[j];
						pos = j;
					}
				}
				if (pos != h) {
					tmp = tiempoDesdeMulta[h];
					tiempoDesdeMulta[h] = tiempoDesdeMulta[pos];
					tiempoDesdeMulta[pos] = tmp;
				}
			}

			// Imprimir tiempos desde
			// for(int m=0; m<tiempoDesdeMulta.length;m++){
			// System.out.println(tiempoDesdeMulta[m]+
			// "desde ordenados vector");
			// }

			for (int k = 0; k < tiempoDesdeMulta.length; k++) {
				int elemento = tiempoDesdeMulta[k];
				for (int l = 0; l < multas.size(); l++) {
					multasString = multas.get(l);
					multasPosicion = descomposeTrama(multasString, "-");
					int tiempoDesde = Integer.parseInt(multasPosicion[3]);
					if (elemento == tiempoDesde) {
						multasOrdenadas.add(multasString);
					}
				}
			}
			multasOrdenadas.addAll(multasNoDesde);
			for (int i = 0; i < multasOrdenadas.size(); i++) {

				System.out.println(multasOrdenadas.get(i));
			}

		}
		return multasOrdenadas;

	}

	public String[] descomposeTrama(String trama, String separador) {
		String[] subtramas = trama.split(separador);
		return subtramas;
	}



	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		try {
			sk.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	// static int val = 0;

	// protected void Log(String dato) {
	// Log.v("Enviando a log valor: " + val, dato);
	// salidaTxt.append(dato + "\n");
	// val = val + 1;
	// }

	// static int cont = 0;

	// private void delay(long tiempo) {
	// try {
	// Thread.sleep(tiempo);
	// } catch (InterruptedException e) {
	// // TODO Auto-generated catch block
	// e.printStackTrace();
	// }
	// }

	// public void actualizaContador() {
	// cont = cont + 1;
	// contador.setText(Integer.toString(cont));
	// }

	// private void actualizarMensajes() {
	// this.Log(getMsg());
	// }

	/*private void comprobarCamposInformacionVehiculo() {
		// TODO Auto-generated method stub
		if (comprobarGuardarValido()) {
			guardar();
		} else {
			// El formulario no es valido, no podemos guardar, mostramos un
			// mensaje al usuario
			mostrarMensaje("Rellena todos los campos antes de guardar.");
		}
	}*/

	/*private void guardar() {
		// TODO Auto-generated method stub
		if (comprobarGuardarValido()) {
			// El formulario es valido, por lo tanto podemos guardar
			boolean bienHecho = false;
			try {

			} catch (Exception ex) {
				// Algo ha ido mal, capturamos la excepcion
				bienHecho = false;
			}

			if (!bienHecho)
				;
			// mostrarMensaje("Algo ha ido mal, no se guarda.");
			// else
			// finish(); // cerramos esta actividad

		} else {
			// El formulario no es valido, no podemos guardar, mostramos un
			// mensaje al usuario
			mostrarMensaje("Rellena todos los campos antes de guardar.");
		}
	}*/

	/*private boolean comprobarGuardarValido() {
		// TODO Auto-generated method stub
		Boolean guardarEsValido = false; // empezamos suponiendo que es falso

		// Obtenemos la instancia de la caja de texto

		// Comprobamos las cajas existen
		if (usuario != null && usuario != null) {
			// Comprobamos que el usuario ha escrito algo en ambas
			if (usuario.getText() != null
					&& !usuario.getText().toString().equals("")) {
				// Titulo tiene algo, comprobamos tambien Autor
				if (contrasena.getText() != null
						&& !contrasena.getText().toString().equals("")) {
					guardarEsValido = true; // ha pasado las comprobaciones
				}
			}

		}

		return guardarEsValido;
	}*/

	public String[] descomposeT(String trama, String separador) {
		String[] elementos = trama.split(separador);
		return elementos;
	}

	/*private void mostrarMensaje(String mensaje) {
		Toast.makeText(this, mensaje, 5000).show();
	}*/

	public void dialogEspera() {
		dialogCircle = new ProgressDialog(InicioSesion.this);
		dialogCircle.setProgressStyle(ProgressDialog.STYLE_SPINNER);
		dialogCircle.setMessage("Procesando...");
		dialogCircle.setCancelable(true);
		dialogCircle.setMax(100);
		dialogCircle.show();
		// tarea2 = new MiTareaAsincronaDialog();
		// tarea2.execute();
		// dialogCircle = ProgressDialog.show(this, "", "Espere por Favor...",
		// true);

		// dialogCircle.setProgressStyle(ProgressDialog.STYLE_SPINNER);

		// ProgressThread thead = new ProgressThread();
		// thead.start();

	}

	/*private class ProgressThread extends Thread {
		public void run() {
			for (int count = 0; count <= 5; count++) {
				try {
					Thread.sleep(1000);
					dialogCircle.setProgress(count);
				} catch (Exception e) {
					// TODO: handle exception
					e.setStackTrace(null);
				}
			}
		}
	}*/

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		try {
			dialogCircle.cancel();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}
	
	
	
	private Dialog dilogErrorAlEntrar() {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setMessage(
				"La conexión con el servidor de SOFTCOV ha fallado. Revisa la conexión de red o vuelve a intentarlo más tarde.")
				.setTitle("Error al entrar")
				.setIcon(R.drawable.ic_11_alerts_and_states_warning)
				.setPositiveButton("Aceptar",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog, int id) {
								dialog.cancel();

							}
						});
		// return builder.create();
		AlertDialog alert = builder.create();
		alert.show();
		dialogCircle.cancel();
		return alert;
	}

	private Dialog dilogUsuarioContrasenaIncorecta() {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setMessage(
				"El usuario o contraseña que has proporcionado no es correcta. Por favor vuelve a intentarlo")
				.setTitle("Usuario o contraseña incorrecta")
				.setIcon(R.drawable.ic_11_alerts_and_states_warning)
				.setPositiveButton("Aceptar",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog, int id) {
								dialog.cancel();
							}
						});
		// return builder.create();
		AlertDialog alert = builder.create();
		alert.show();
		//dialogCircle.cancel();
		return alert;
	}
	private Dialog dilogSesionIniciada() {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setMessage(
				"El usuario ya tiene una Sesión Iniciada. Por favor comuníquese con el administrador del sistema.")
				.setTitle("Sesión Iniciada")
				.setIcon(R.drawable.ic_11_alerts_and_states_warning)
				.setPositiveButton("Aceptar",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog, int id) {
								dialog.cancel();
							}
						});
		// return builder.create();
		AlertDialog alert = builder.create();
		alert.show();
		dialogCircle.cancel();
		return alert;
	}

	private Dialog dilogZonasNoAsignadas() {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setMessage(
				"Usted Actualmente no tiene zonas asignadas. Vuelva a intentarlo más tarde")
				.setTitle("Zonas no asignadas")
				.setIcon(R.drawable.ic_11_alerts_and_states_warning)
				.setPositiveButton("Aceptar",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog, int id) {
								dialog.cancel();
							}
						});
		// return builder.create();
		AlertDialog alert = builder.create();
		alert.show();
		dialogCircle.cancel();
		return alert;
	}
	@Override 
	public boolean onKeyDown(int keyCode, KeyEvent event) { 
		try {
			if (keyCode == KeyEvent.KEYCODE_BACK) { 
		        moveTaskToBack(true); 
		        return true; 
		    } 
		} catch (Exception e) {
			// TODO: handle exception
			Toast.makeText(getBaseContext(), "Error al ir Atrás" + e, Toast.LENGTH_LONG).show();
		}
	    
	    return super.onKeyDown(keyCode, event); 
	}
	public static String encrypt(String cadena,String clave) { 
        StandardPBEStringEncryptor s = new StandardPBEStringEncryptor(); 
        s.setPassword(clave); 
        return s.encrypt(cadena); 
    }

	public static String decrypt(String cadena,String clave) { 
	        StandardPBEStringEncryptor s = new StandardPBEStringEncryptor(); 
	        s.setPassword(clave); 
	        String devuelve = ""; 
	        try { 
	            devuelve = s.decrypt(cadena); 
	        } catch (Exception e) { 
	        } 
	        return devuelve;
	}

	public void guardarIpPuerto(){
		try
		{
		    //File ruta_sd = Environment.getExternalStorageDirectory();
			File root = Environment.getExternalStorageDirectory();
			File dir = new File(root + "/Android/data");
		    File f = new File(dir.getAbsolutePath(), "configTCP.txt");
		 
		    BufferedReader fin =
		        new BufferedReader(
		            new InputStreamReader(
		                new FileInputStream(f)));
		 
		    String texto = fin.readLine();
		    fin.close();
		    String [] datosConexion=descomposeT(texto, ":");
			String ip =datosConexion[0];
			String port =datosConexion[1];
			int puerto=Integer.parseInt(port);
			try {
				guardarConexion(ip,puerto);	
			} catch (Exception e) {
				// TODO: handle exception
				System.out.println("error conexion ingreso");
			}
			
		    System.out.println("texto encontrado "+texto);
		}
		catch (Exception ex)
		{
		    Log.e("Ficheros", "Error al leer fichero desde tarjeta SD");
		}
	}
	public void guardarConexion(String ip, int puerto){
		GestorBaseDatos manejador = new GestorBaseDatos(
				InicioSesion.this);
		boolean bienHecho2 = false;
		try {
			
			manejador.abrirBaseDatos();
			bienHecho2 = manejador.insertarIPPUERTO(ip, puerto);
			manejador.close();
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("se se guardo");

		}
		if (!bienHecho2) {
			System.out.println("La Datos no fueron Cargados de IP y PUERTO");
			
		}
		if (bienHecho2) {
			System.out.println("La Datos fueron Cargados de IP y PUERTO");
		}
		
	}
}
